<?php
/*
Uploadify
Copyright (c) 2012 Reactive Apps, Ronnie Garcia
Released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
$extFilesAcepted = array('jpg','jpeg','JPG','JPEG','GIF','PNG','gif','png');

// Define a destination
$targetFolder = $_POST["path"]; // Relative to the root

if (!empty($_FILES) ) {
	$tempFile = $_FILES['Filedata']['tmp_name'];


	$targetPath = $_SERVER['DOCUMENT_ROOT'] ."/". $targetFolder;

	$targetFile = rtrim($targetPath,'/') . '/' . $_FILES['Filedata']['name'];
	$targetFileThum = rtrim($targetPath,'/') . '/thum/' . $_FILES['Filedata']['name'];

	// Validate the file type
	$fileTypes = $extFilesAcepted; // File extensions
	$fileParts = pathinfo($_FILES['Filedata']['name']);

    $fileName = $_FILES['Filedata']['name'];

    $i = 1;
    while (file_exists($targetFile)){
        $ext = explode(".", $_FILES['Filedata']['name']);
        $ext = strtolower($ext[count($ext) - 1]);
        $fileName = basename($_FILES['Filedata']['name'],".".$ext);
        $fileName = $fileName."_".$i.".".$ext;
        $targetFile = rtrim($targetPath,'/') . '/' . $fileName;
        $targetFileThum = rtrim($targetPath,'/') . '/thum/' . $fileName;
        $i++;
    }

    if (in_array($fileParts['extension'],$fileTypes)) {
        //TODO: cambiar la variable upload_max_filesize a 10M en el php.ini
        move_uploaded_file($tempFile,$targetFile);
        thumbnails($targetFile,220,$targetFileThum);
        echo $fileName;
    } else {
        echo "error";
    }

}


function thumbnails($file,$width,$target){

// Ponemos el . antes del nombre del archivo porque estamos considerando que la ruta está a partir del archivo thumb.php
    $file_info = getimagesize($file);
// Obtenemos la relación de aspecto
    $ratio = $file_info[0] / $file_info[1];

// Calculamos las nuevas dimensiones
    $newwidth = $width;
    $newheight = round($newwidth / $ratio);

// Sacamos la extensión del archivo
    $ext = explode(".", $file);
    $ext = strtolower($ext[count($ext) - 1]);
    if ($ext == "jpeg") $ext = "jpg";

// Dependiendo de la extensión llamamos a distintas funciones
    switch ($ext) {
        case "jpg":
            $img = imagecreatefromjpeg($file);
            break;
        case "png":
            $img = imagecreatefrompng($file);
            break;
        case "gif":
            $img = imagecreatefromgif($file);
            break;
    }
// Creamos la miniatura
    $thumb = imagecreatetruecolor($newwidth, $newheight);
// La redimensionamos
    imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $file_info[0], $file_info[1]);
// La mostramos como jpg
    //header("Content-type: image/jpeg");
    imagejpeg($thumb, $target, 80);
    //move_uploaded_file($thumb,$target);
}

?>